草庐IT

java - 通过 Streams 并行执行多个查询

全部标签

ruby-on-rails - 通过 IMAP 在 Rails 中获取电子邮件

我有一个在本地Intranet上运行的Rails应用程序,有1000个常规用户。我希望将它与我们的电子邮件服务器(MSExchange)集成。基本上-1)对于每个用户,应用程序应从邮件服务器获取其收件箱中的所有新邮件,对其进行解析,并将其归档到数据库中。我可以用ruby​​/net-imap实现它,但我担心性能。正如我所提到的,有一千个用户,每个用户都有不同的电子邮件地址。每x分钟轮询一次电子邮件服务器对于一千个用户来说会大大降低性能。看起来像IMAPIDLEwithruby/net-imap可能是一个选项,只要有新邮件(iPhone/Outlook样式),邮件服务器就会向我的应用程序

ruby - Rake 依赖不执行但调用有效

我一直在尝试运行rakedb:test:clone_structure,但它总是无法重建数据库。我终于看到了任务本身:task:clone_structure=>["db:structure:dump","db:test:load_structure"]当我运行跟踪时,我注意到db:test:load_structure没有被执行:$rakedb:test:clone_structure--trace**Invokedb:test:clone_structure(first_time)**Invokedb:structure:dump(first_time)**Invokeenviro

ruby-on-rails - 以任意顺序匹配多个 yield

我想用rspec测试一个迭代器。在我看来,唯一可能的产量匹配器是yield_successive_args(根据https://www.relishapp.com/rspec/rspec-expectations/v/3-0/docs/built-in-matchers/yield-matchers)。其他匹配器仅用于单个屈服。但是yield_successive_args如果屈服顺序与指定顺序不同,则会失败。是否有任何方法或很好的解决方法来测试以任何顺序产生的迭代器?类似下面的内容:expect{|b|array.each(&b)}.toyield_multiple_args_in_

ruby - 我如何以编程方式查询 Vagrant 的配置状态?

目标我正在尝试有条件地运行vagrant-berkshelf插入。默认情况下,启用该插件会导致Berkshelf在每个vagrantup(这是一个相对昂贵的操作)上解析和供应商说明书,即使当前的vagrant操作不是配置运行。例如,我希望Berkshelf在我运行时运行:vagrantup第一次,或者当我执行vagrantreload--provision时。Thesourceimplies应该有一种方法可以查询Vagrant本身以确定它是否是配置运行。具体来说,应该有一种方法可以挂接到@env[:provision_enabled]或vagrant.actions.vm.provis

ruby - 无法通过 rvm bundle install 安装 ffi 1.9.0 - OSX 10.8.4

在带有自制软件、xcode(带有命令行工具)和libffi的MacbookPro上使用OSX10.8.4。我已经安装了rvm和ruby​​-1.9.3-p448,并且有一个名为omega.ecoop的gemset。有一个gemfile列出了该项目所需的gem。但是,在运行bundlecheck后,我无法安装它们:Bundlercan'tsatisfyyourGemfile'sdependencies.这是正确的,因为它们没有安装。所以我使用:bundleinstall产生以下内容:Sams-MacBook-Pro:ecoopSam$bundleinstallFetchinggemmet

ruby - 执行 ruby​​ 作为 logstash 的管道输入

Logstash允许executingarbitrarycommands作为管道的输入。这是我的示例管道:input{exec{command=>'/usr/bin/ruby-e"putsRUBY_VERSION"'interval=>10}}output{stdout{codec=>rubydebug}}有了这个我得到了以下错误:/opt/logstash/vendor/bundle/jruby/1.9/gems/bundler-1.9.10/lib/bundler/resolver.rb:328:in`blockinverify_gemfile_dependencies_are_f

ruby-on-rails - 在远程服务器上执行 rake 任务

生产环境的物理架构包括多台机器执行不同的工作(rake任务),所有这些机器都在同一个数据库上。如果其他作业正在运行,其中一个作业会对表执行大型UPDATE,这通常会返回postgres死锁。我已经有一个rake任务来优雅地停止其他作业,但我只能从本地机器上执行它。我想实现的是:task:big_update=>:environmentdostop_tasks_on_another_servers#dotheSQLUPDATE...endstop_tasks_on_another_servers应该在其他服务器上执行rake任务。我最好的尝试是使用https://github.com/c

ruby - 一个网络服务器上有多个 Ruby 版本?

理想使用rvm,如果能够在一个网络服务器上拥有多个Rubies,并且通过某种服务器配置,能够在每个项目的基础上将Ruby版本分配给不同的Rails/Sinatra/等应用程序,那将是非常棒的。我从rvm的文档中了解到,Passenger一次只能使用一个Ruby。:(妥协否则,至少能够想出一种方法将项目分配给Ruby1.8或Ruby1.9解释器会很好。我读过使用Nginx作为反向代理允许在同一个盒子上运行Apache和Nginx。那么是否有可能让Apache+Passenger使用一个Ruby,而Nginx+Passenger使用另一个?也许在Nginx中使用Passenger以外的东西

ruby-on-rails - 如何通过 Carrierwave 通过 JSON API 上传文件?

我正在Rails中构建文件操作API,我需要能够通过单独的gem访问它。API使用Carrierwave,那件作品没有问题。我不明白该怎么做是获取任意文件并将其从gem接口(interface)传递给API。Carrierwave将其文件作为File.open('foo.jpg')的结果或作为来自文件字段的POST。不过,我真的不确定他们正在做什么来序列化文件并将其一起发送。我如何获取文件的内容并将其转换为我可以传递并通过JSON发布的内容? 最佳答案 当HTML表单POST文件时,实际发生的是HTTP的一个特殊部分,称为多部分请求

ruby-on-rails - 为什么在 after hook 中添加 "sleep 1"会导致此 Rspec/Capybara 测试通过?

我使用的是rails4.0.5、rspec2.14.1、capybara2.2.1、capybara-webkit1.1.0和database_cleaner1.2.0。我在以下功能测试中看到一些奇怪的行为(模拟用户查看帖子评论,将鼠标悬停在图标上以显示菜单,然后单击菜单项删除评论):let(:user){create(:user)}let(:post){create(:post,author:user)}let!(:comment){create(:comment,post:post,author:user)}...it"candeleteacomment"doassert(page